6055d1b696ea2e3085947afe22344b8d7a1d3589,src/java/org/apache/cassandra/db/Table.java,Table,apply,#RowMutation#Object#boolean#,326
Before Change
{
// read old indexed values
QueryFilter filter = QueryFilter.getNamesFilter(key, new QueryPath(cfs.getColumnFamilyName()), mutatedIndexedColumns);
oldIndexedColumns = cfs.getColumnFamily(filter);
// apply the mutation
applyCF(cfs, key, columnFamily, memtablesToFlush);
After Change
{
// read old indexed values
QueryFilter filter = QueryFilter.getNamesFilter(key, new QueryPath(cfs.getColumnFamilyName()), mutatedIndexedColumns);
ColumnFamily oldIndexedColumns = cfs.getColumnFamily(filter);
// ignore obsolete column updates
if (oldIndexedColumns != null)
{
for (IColumn oldColumn : oldIndexedColumns)
{
if (cfs.metadata.reconciler.reconcile((Column) oldColumn, (Column) cf.getColumn(oldColumn.name())).equals(oldColumn))
{
cf.remove(oldColumn.name());
mutatedIndexedColumns.remove(oldColumn.name());
oldIndexedColumns.remove(oldColumn.name());
}
}
}
// apply the mutation
applyCF(cfs, key, cf, memtablesToFlush);
// add new index entries
for (byte[] columnName : mutatedIndexedColumns)
{
IColumn column = cf.getColumn(columnName);
DecoratedKey<LocalToken> valueKey = cfs.getIndexKeyFor(columnName, column.value());
ColumnFamily cfi = cfs.newIndexedColumnFamily(columnName);
cfi.addColumn(new Column(mutation.key(), ArrayUtils.EMPTY_BYTE_ARRAY, column.clock()));
applyCF(cfs.getIndexedColumnFamilyStore(columnName), valueKey, cfi, memtablesToFlush);
}
// remove the old index entries
if (oldIndexedColumns != null)
{
int localDeletionTime = (int)(System.currentTimeMillis() / 1000);
for (Map.Entry<byte[], IColumn> entry : oldIndexedColumns.getColumnsMap().entrySet())